-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Check the ambientness of a symbol name before attempting to trim it #26312
Check the ambientness of a symbol name before attempting to trim it #26312
Conversation
@typescript-bot test this just in case |
Heya @weswigham, I've started to run the extended test suite on this PR at 7ff7dcc. You can monitor the build here. It should now contribute to this PR's status checks. |
Thank you guys for your good, quick work here! |
src/compiler/moduleSpecifiers.ts
Outdated
@@ -232,8 +232,17 @@ namespace ts.moduleSpecifiers { | |||
} | |||
|
|||
function tryGetModuleNameFromAmbientModule(moduleSymbol: Symbol): string | undefined { | |||
const decl = moduleSymbol.valueDeclaration; | |||
if (isModuleDeclaration(decl) && isStringLiteral(decl.name)) { | |||
const decl = forEach(moduleSymbol.declarations, d => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like this could use find
and boolean operators.
src/compiler/utilities.ts
Outdated
@@ -638,6 +638,10 @@ namespace ts { | |||
return false; | |||
} | |||
|
|||
export function getNonAugmentationDeclaration(symbol: Symbol) { | |||
return forEach(symbol.declarations, d => isExternalModuleAugmentation(d) ? undefined : d); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could use find
@Andy-MS another quick look? |
* origin/master: (283 commits) Don't error on destructure of private property with computed property syntax (microsoft#26360) getDefaultExportInfo: Use `getImmediateAliasedSymbol` instead of `getAliasedSymbol` (microsoft#26364) review comments restore old algorithm Dont use baseURL relative absolute paths in declaration emit, use absolute paths in bundle emit (microsoft#26341) Update user baselines (microsoft#26358) Don't store @template constraint in a TypeParameterDeclaration node (microsoft#26283) fixAddMissingMember: Support interface and don't crash on type parameter (microsoft#25995) Don't include class getter in spread type (microsoft#26287) Don't crash on computed property in destructure (microsoft#26334) Check the ambientness of a symbol name before attempting to trim it (microsoft#26312) Still generate signatures in SkipContextSensitive mode just to match on return types (microsoft#25937) fix handling if there is no commonPrefix Actually add sorting of elaboration text to user baselines Ping ryan instead of mohammed for user PRs now handle failed lookups make it work for root directory really, really fix test(?) add test fix commonPrefix handling ...
Fixes #26295
An export assigned namespace from a declaration file with an augmentation in another file is:
And so naming the module it corresponds to proves to be a more difficult process than we had assumed! If we have a resolver, we can find the file corresponding to the first non-augmentation declaration, however when a resolver is not available we must fall back to the full path of the containing file of that declaration. We actually had a bunch of baselines which exhibited this bug in the
types
baseline (though none in declaration emit).